

        Командные файлы
        ~~~~~~~~~~~~~~~
   Командный файл ДОС представляет собой обычный текстовый файл
и может быть набран в любом текстовом  редакторе.  Первым  сим-
волом командного файла д.б. "*". В командных  файлах  допустимы
все команды диалогового режима, а также описанные ниже команды,
применяемые только в командных файлах. Если программа  запущена
из командного файла и заканчивается HALT,  то  выполнение  ком.
файла после выхода из программы  продолжится  со  следующей  за
вызовом строки.

        Команды используемые в командных файлах
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       - признак командного файла
*
символ "*" должен быть единственным символом  в  первой  строке
командного файла

       - выдача восьмеричных кодов в драйвер экрана
формат команды: CHR nn1[,nn2[,..]]
осуществляет ввод последовательностей управляющих кодов.

       - позиционирование курсора
формат команды: LOCATE nn1,nn2
nn1 - координата X, nn2 - координата Y

       - задержка
формат команды: PAUSE [nn]
nn - величина задержки - восьмеричное число

       - ввод символа с клавиатуры
формат команды: INPUT
Выполнение  ком.  файла  приостанавливается  и  ожидается  ввод
символа с клавиатуры.

       - условный оператор
форматы команды:
IF nn string или IF "char" string
IF addr=nn string
nn  и  char  -  представление  кода  символа  для  сравнения  с
введенным командой INPUT соответственно в восьмеричном  виде  и
в виде символа, заключенного  в  кавычки.  Если  код  введенный
по  INPUT  совпадает  с  указанным  в  виде  nn  или  char,  то
производится  переход  к  строке,  помеченной  меткой  :string,
иначе исполняется следующая за IF строка.
IF addr=nn  string  -  сравливается  слово  по  адресу  addr  с
заданным nn, если  addr=nn  управление  передается  на  строку,
помеченную меткой :string,  иначе исполняется следующая  за  IF
строка.

     - безусловный переход
формат команды: GOTO string
управление передается на  строку,  помеченную  меткой  :string.

     - метка
формат команды: :string
помечает строку командного файла для последующего использования
в операторах IF и GOTO.

     - строка-комментарий
формат команды: REM string
отменяет выполнение строки ком. файла

     - очистка экрана
формат команды: CLS
действие аналогично команде CHR 14

     - вывод строки на экран
формат команды: ? string или ? "string"
Для сохранения табуляции строка string заключается  в  кавычки.

     - управление выводом на экран
формат команды: ECHO ON|OFF|string или ECHO "string"
ECHO ON - разрешает вывод на экран сообщений ДОС
ECHO ОFF - запрещает вывод на экран
действие ECHO string  или  ECHO  "string"  аналогично  командам
? string или ? "string" соответственно.

     - прекращение выполнения ком.файла
формат команды: END
Завершает выполнение ком. файла и передает управление ДОС.

        Пример командного файла
        ~~~~~~~~~~~~~~~~~~~~~~~
*
ASSIGN C: A:
ASSIGN D: B:
VERIFY OFF
INIT F:
LABEL F: VDISK
SH
? НАЖМИТЕ "Т" ДЛЯ ЗАПУСКА TURBO
INPUT
IF "T" CONT
END
:CONT
B:
A:TURBO

        Стартовый командный файл
        ~~~~~~~~~~~~~~~~~~~~~~~~

При загрузке системы с диска производится поиск файла с  именем
AUTOEXEC.BAT и , если он найден, исполняются содержащиеся в нем
команды.
  В файл AUTOEXEC.BAT рекомендуется включать следующие команды:

MODE A: 500  -установить задержку при переходе с дорожки на
MODE B: 500   дорожку.

ASSIGN C: C: -разрешить работу с третьим дисководом (в штатном
             режиме обращение к C: переадресуется на A:)
MODE C: NOskip
            -oтменить режим  пропуска  дорожек  при  работе  с
             третьим дисководом (в штатном режиме  C:  обраба-
             тывается с пропуском дорожек SKIP)

PALET 5      -установка палитры для цветного монитора.
Возможен  другой  вариант  -  загрузить  шрифт  для  работы  на
цветном мониторе (FONT1 или FONT2) и установить палитру  БК-10:
PALET 0

VERIFY OFF   -отменить проверку правильности  записи.  Рекомен-
             дуется  для  ускорения   работы   на   нормальной
             аппаратуре.

*.DRV        -загрузка необходимого драйвера принтера, например
R6313.DRV     (в штатном режиме установлен драйвер, аналогичный
             драйверу БЕЙСИКа БК-10)

S11      -запуск программы-оболочки DOS-SHELL

Блокировка вывода сообщений на экран  (аналог  ECHO  OFF)  м.б.
установлена командой "@ 50 377", разрешение вывода - "@  50  0"


   Команды выполняемые из прикладных программ
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(вводятся вместо имени файла при обращениях EMT 36)

S:[D]     - вывод/смена текущего устройства
Команда задает имя диска или магитофон,  к  которым  произойдет
обращение, если перед именем файла явно не указано  имя  устро-
йства.
S:D\NAME        - сменить текущий подкаталог;
Команда S:D\\   - перейти в корневой каталог.

K:[D:][NAME]    - просмотр каталога диска
Применяется для вывода каталога диска из  прикладных  программ.

Q:           - выход в ДОС
Применяется  для  программ,  не  имеющих  запроса  на  выход  в
монитор, а также чтобы обойти повтрную  инициализацию  системы.

М:[SKIP|NOSKIP|SSIDE|DSIDE]   -   просмотр/задание   параметров
настройки ДОС. Действие команды аналогично МОDE, что  позволяет
перенастроить параметры  дисководов  не  выходя  из  прикладной
программы.

        Диагностические сообщения и ошибки
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Коды  ошибок,  возвращаемые  драйвером  КНГМД, выводятся в виде
сообщения I/O error NN in drive D:, где NN принимаяет значения:

1       защита записи или ошибка CRC
2       ошибка CRC заголовка
3       нет 0 дорожки (вырабатывается также если дисковод
        не подключен)
4       ошибка позиционирования
5       сектор не найден
6       диск не вращается
7       прерывание по вектору 4
10      не найден маркер заголовка
11      не найден маркер данных
12      нестандартная разметка

  Эти ошибки  возникают на физическом уровне.  Также ДОС выдает
сообщения о логических  ошибках, на уровне файловой структуры .
Указанные в  скобках  коды  ошибок  возвращаются в байте  301 :

 Bad command or filename -введенная строка не является командой
ДОС или отсутствует указaнный файл.
 File not found - файл с  заданным  именем  не  найден  (ош.14)
 Invalid parameters - в команде неверно указаны  параметры.(54)
 Non-DOS disk - формат каталога не соответствует АО-DOS.(ош.74)
 Disk full - при записи файла на диске не хватает места.(ош.34)
 Dir full - переполнении каталога.(ош.44)
 Protected  file  -  предупреждение,  что  файл  имеет  атрибут
 "защищенный", и  не  может  быть  изменех  или  удален.(ош.24)
 Для перезаписи необходимо снять атрибут командой :
 "ATTRIB - name".
 Not ready - печатающее устройство не готово.
 Directory error - ошибка при работе с каталогом и
подкаталогами ДОС.

        Редактирование командной строки
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
В диалоговом режиме поддерживаются команды редактирования:
<-,-> - перемещения по строке;
K== - удаление символа
╞=> - вставка пробела
<== - удаление символа справа от курсора
╪=> - очистка строки справа от курсора
<ВС> - вывод предыдущих строк
<ВВОД> - конец ввода строки
<КТ> - отказ от ввода текущей строки

В буфере  запоминаются строки, в  том порядке, как они вводятся
с  клавиатуры.  Строка  запоминается, если ее длина больше двух
символов.  Эти строки м.б.  выведены  нажатиями  кл. <ВС>,  при
необходимости  отредактированы  и  снова  исполнены.  Допустимо
использование  нескольких  команд  в  строке  разделенных  ";".
При вводе поддерживается автоповтор нажатия клавиш.

---------------------------------------------------------------

               Системнaя информация
               ~~~~~~~~~~~~~~~~~~~~

        Oбслуживание принтера
        ~~~~~~~~~~~~~~~~~~~~~
        Ячейка 240 указывает на начальный адрес драйвера прин-
тера в 7-й странице. Драйвер оформляется в виде подпрограммы  и
должен сохранять используемые  регистры.  Перед  инициализацией
загрузчик  драйвера  должен  подключить  7-ю  страницу  ОЗУ  по
адресам 40000..77777, прочитать адрес  из  яч.240  и  переслать
резидентную часть драйвера. Резидентная часть должна быть пере-
местимой, код печатаемого символа поступает в R0:

        MOV #56200,@#177716
        MOV @#240,R1
        MOV #DRV,R2
        MOV (R2)+,(R1)+
        CMP R2,#END
        BLO .-6
        HALT
DRV:    MOV #177715,R5
        BIS #177400,R0
        TSTB @R5
        BEQ .-2
        MOV R0,@R5
        TSTB @R5
        BNE .-2
        CLR @R5
        RET
END:    .END

        Передача параметров через командную строку
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
При запуске программы регистр R2 указывает на первый символ  не
являющийся пробелом, после имени файла.  Например  в  командной
строке:
 A:>FORM  T:80   S:9
После успешного запуска программы с именем  "FORM"  регистр  R2
будет указывать на первый символ строки  "Т:80  S:9".  Соседние
пробелы удаляются.


        Вызов функций ДОС
        ~~~~~~~~~~~~~~~~~
Доступ к функциям ДОС осуществляется через ЕМТ диспетчер.
Из прикладных программ доступны следующие обращения:

EMT  1- Вывод 8-числа из регистра R2, регистры R0,R1,R2 не
        сохраняются.
ЕМТ  3- Вывод 8-числа из R2, R1 указывает количество
        выводимых знакомест.
EMT 11- Исполнение командноЙ строки ДОС.
        R2 содержит адрес начала строки команды
        R3 - конечный адрес строки команды
        ошибочные  ситуации   обрабатываются   по   4   вектору
        регистры не сохраняются.
ЕМТ 17- Вывод символа по коду в R0, коды 1..11,13,37  выводятся
        в виде соответствующего количества пробелов
EMT 21- вывод строки символов, адрес начала - в  R1,  ограничи-
        тель - нулевой байт,  управляющие  коды  обрабатываются
        стандартно.
EMT 31- Вывод кода в R0 на печать.  Поддерживаются  загружаемые
        драйверы печати.
EMT 41- Вывод десятичного числа в диапазоне 0..9999.
        Число в R2, регистры R0,R1,R2 не сохраняются.
ЕМТ 43- Выдача служебной информации ДОС.
        На выходе  в  мл.байте  R0  номер  версии,  в  старшем-
        признак ДОС - байт 32(8), указывающий  на  то  что  ЕМТ
        перехватчик  обслуживается  ДОС.  Перед  использованием
        дополнительных  возможностей  ДОС  необходимо   проана-
        лизировать  содержимое  R0  после  обращения  ЕМТ   43.

               Команды ЕМТ 36
               ~~~~~~~~~~~~~~
Значения байта-команды в блоке параметров ЕМТ 36:

бит 7 = 1-разрешить вывод текстовых сообщений ДОС
бит 6 = 1-запретить остановку двигателя дисковода
бит 5 = 1-работать с  копией  каталога  в  памяти  (при  чтении
        или записи каталога обращение к диску не  производится)
Остальные биты (0..4) кодируют команды:
2-запись файла
3-чтение файла
4-вывод каталога
10-запись файла с измененным адресом загрузки
        В каталог заносится адрес из поля адреса  (яч.  2(R1)),
        а фактический адрес берется из яч.316
11-создать новый файл (аналог CREATE)
12-удалить файл (DELETE)
13-файловый фильтр
        Вход:
        поле адреса в блоке параметров содержит адрес
        буфера для 30-байтовых записей.
        поле имени содержит маску имени файла
        Выход:
        яч. 312 количество найденных файлов
        яч. 314 количество блоков в этих файлах
        яч. 316 общее количество блоков на диске
        смещение 52..65 в блоке параметров содержит
        имя диска, указанный блок памяти заполняется
        30-байтовыми записями о найденных файлах
14-файловый фильтр с сортировкой по имени
        обращение аналогично предыдущей команде, записи
        упорядочиваются поименам файлов


        Фиксированные ячейки ДОС:
        ~~~~~~~~~~~~~~~~~~~~~~~~~
117464(2)  - страницы ОЗУ, подключаемые  при  работе  с  диском
  номера страниц указываются в том виде, как  они  записываются
  в регистр 177716. В стандартном  режиме  яч  117464  содержит
  число 16200, что соответствует подключению  4-й  страницы  на
  100000..137777 и 5-й страницы  (0-буфера  экрана)  на  адреса
  40000..77777, 11-й разряд установлен в 1.
  Изменить страницу, подключаемую на 40000..77777 бывает  необ-
  ходимо, например, при  работе  в  редакторе  текста,  который
  имеет непрерывный буфер текста 1000..77777 в страницах 0 и 6,
  а на экран выводит страницу 5. Обращение из редактора  должно
  иметь такой вид:
        ...
        MOV #76200,@#117464 ;будет подключена 6-я страница
                         ;по адресам 40000..77777
        INCB @#50         ;запрещение вывода на экран
                         ;сообщений ДОС
        EMT 36       ;обращение к ДОС
        MOV #16200,@#117464 ;восстановление 5-Й страницы
        CLRB @#50         ;разрешение вывода на экран
        ...

117707(1)  - признак программы-оболочки
  При значении этого байта равном 32, ДОС  проверяет  загружена
  ли программа-оболочка. Оболочка считается  загруженной,  если
  по адресу 120000 находится код 240 (NOP), при этом ДОС вместо
  выхода в диалоговый режим передает управление на адр  120000.
  Подгрузки оболочки с диска не происходит.

117710(1)  - активное устройство
117711(1)  - устройство, выбираемое по умолчанию
 активное устройство может не совпадать с выбираемым  по  умол-
 чанию, например при исполнении команды:
              B:>A:MIRAGE←┘
, ячейки содержат: 117710=0 (A:) ,117711=1 (B:)

117712(64) - адреса, используемые драйвером дисковода


        Используемый формат каталога:
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(смещения даются от начала нулевого блока)

0   - код 240 (смещения 0 и 2 используются в  случае  загрузоч-
      ного диска )
2   - код инструкции BR nnn для обхода форматной области
4*  - признак расширенного формата 32
5*  - байт описатель диска:
      12  - 10 секторов на дорожку, две стороны
      212 - 10 секторов на дорожку, одна сторона
      11  - 9 секторов на дорожку, две стороны
      211 - 9 секторов на дорожку, одна сторона
6*  - размер сектора в байтах
10* - количество дорожек
12* - зарезервировано

14  - метка диска (14 символов)
30  - количество записей в каталоге
32  - номер блока, указываемого последнней записью
400 - код 123456 - признак данного формата
500 - начало области данных

* - помеченные смещения  поддерживаются  расширенным  форматом,
    могут использоваться в будующих версиях системы.

Oбласть данных содержит 30-байтные  записи.  Структура  записи:
(смещения даются от начала записи)

0..1   - слово признаков:
        бит 15 - признак удаленный
        бит 7  - признак сбойный блок
        бит 1  - признак спрятанный
        бит 0  - признак защищенный
        биты 8..14 номер родительского подкаталога
        для записи, содержащей имя подкаталога, биты
        0..6 содержат номер этого подкаталога.
2..17  - имя файла ( коды 0..40, 200..240 допустимы, но не
        рекомендуются )
20..21 - номер первого блока, занимаемого файлом
22..23 - количество блоков, отведенных файлу,
        если это поле содержит ноль, то запись трактуется
        как имя подкаталога.
24..25 - адрес загрузки (уменьшается до четного)
26..27 - длина в байтах (должна быть меньше 77777)

   При инициализации 40-дорожечного диска под данные  отводится
1414 блоков ,80-дорожечного  -  3054  блока.  Каталог  занимает
блоки 0..11 на нулево дорожке,  страховочная  копия,  обновляе-
мая при каждом изменении каталога -  блоку  12..23  на  нулевой
дорожке.

        Подготовка системного диска
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для подготовки диска,  с  которого  может  загружаться  система
необходимо:
        - отформатировать (или инициализировать) диск
        - скопировать на чистый диск файм ROM11
        - скопировать файл AO-DOS (сразу после ROM11)
        - запустить утилиту BOOT11 для проверки файлов  и  фор-
         мирования загрузчика.


